Binding separate paper documents together can create a well organized, coherent collection of information. The separate documents become sections of the bound collection. Binding sections together is the reason traditional three-ring paper binders were created. Multiple sections can be kept in a particular order that makes sense to the one binding the sections together. Different kinds of sections, such as drawings, photographs, and text, can be bound together and labeled with consecutively numbered pages. The bound collection becomes one physical entity that can be maintained and carried around as a single binder. However, the advantages of binding document sections together in the paper world do not easily translate into a computerized environment for electronic documents.
In the electronic documents environment, there are several methods of "binding" electronic document files or sections together. First, document files can be organized or "bound" together in a directory. However, the document files are stored separately. not as a single file, making it more cumbersome to copy or to electronically mail the documents files. Additionally, the files within the directory cannot be maintained in a user-definable order nor can the directory itself be transferred (e.g., copied or electronically mailed) as a single file.
Microsoft Corporation's Word 6.0 word processing application program is capable of binding sections of a compound document in what is called a master document. Sub-documents contain data that is used in the master document. The master document reflects the status of each sub-document that is part of the master document. However, the master document cannot store the sub-documents as part of a single file (master document) nor is the native format for a document maintained once the document is saved as a sub-document of the master document. Furthermore, the master document cannot store sub-documents of differing file formats.
Microsoft Corporation's Excel 5.0 spreadsheet application program is also capable of binding sections of a compound document in what is called a workbook document. The workbook document contains multiple spreadsheets within a single file in a predetermined order. However, the native format for each spreadsheet is not maintained in the workbook document. Furthermore, the workbook document is not capable of storing sections of differing file formats, i.e., only spreadsheets can be sections of the workbook document.
Sections of a compound document can be stored as sub-files of a single compound document file, also known as a file bundle. The data within each sub-file is maintained in the native format defined by the application program module that generated each sub-file. The compound document file maintains the sub-files and a directory of pointers. The pointers indicate the physical location in memory of each sub-file within the compound document file. However, the order of sub-files is not maintained within the compound document file.
Another method of "binding" electronic documents together is by embedding information from document files into a compound document. This compound document concept is well known and is implemented by the Object Linking and Embedding (OLE) 2.0 protocol and functions designed and marketed by the Microsoft Corporation. In the context of OLE 2.0, a compound document comprises a containing document (container) and an embedded document (embedded object) that is linked and embedded within the containing document.
In general, a containing application is an application program module that maintains a container, such as a compound document. The containing application provides storage for the compound document as well as a place for viewing and editing the embedded object amongst the containing document. A serving application is an application program module that creates an embedded object. The serving application creates an "object viewr" of the embedded object and displays the object view amongst the contents of the containing document itself. For example, a compound document could be a newsletter (container) having a chart (embedded object) displayed within the window that displays the newsletter.
According to the OLE 2.0 protocol, when an embedded object is edited, the user must first "activate" the embedded object. This is conventionally accomplished with a double click of the mouse on the displayed embedded object, which renders the embedded object to be "in place active" or "UI active". Once activated, the menus of an application program module that created the activated embedded object are negotiated with the containing application under the OLE 2.0 protocol. As a result of the menu negotiations the user sees a different set of menus that are relevant to the activated embedded object.
When the OLE compound document is stored, structured storage is utilized. Structured storage is a set of application programming interfaces (APIs) for describing a way to create a single file structure that can contain other file structures with the single file, similar to storing directories and additional files within a single directory. An implementation of this kind of structured storage for a compound document is also referred to as Doc Files. Those skilled in the art will be familiar with compound documents and the features and protocol of standard OLE 2.0 including structured storage techniques. Additional details of OLE 2.0 can be obtained by referring to "Inside OLE 2" by Kraig Brockschmidt published by Microsoft Press.
Once an OLE embedded object is embedded within the containing document, the OLE embedded object is stored in a format that is native to the application program module that created the embedded object, but is not necessarily the same as the file format for the application. The embedded object becomes tightly associated with the containing document and is stored in a single file along with the containing document. The embedded object can no longer be manipulated outside the confines of the containing document.
When viewing an embedded object, the embedded object is displayed within a single window or viewport along with the containing document. However, each embedded object or section of the OLE compound document cannot be solely viewed and edited within the entire viewport. Embedded objects are limited to being viewed and edited within only a portion of the window or viewport amongst the contents of the containing document.
Problems may arise when printing out an OLE compound document. For OLE compound documents, the containing application prints all sections of the OLE compound document, including the containing document as well as metafile representations of the embedded objects. This results in less than optimum printing control and print quality. For example, the containing application may not recognize the need for a page break when printing the representation of a large embedded spreadsheet or a large embedded graphic image. To resolve this quality problem, one approach is to individually print each section of the compound document by instructing the serving application program to print out each embedded object or section. However, this approach can allow other print jobs to interrupt the process of printing each section of the entire compound document because other print jobs can be processed after each section is printed. This results in confusion at the printer when sections are not consecutively printed as a single, uninterrupted print job and when the sections are not consecutively numbered.
Therefore, in the context of electronic documents, there is a need for "binding" or storing related sections of a compound document in a single file where the sections are of different file formats, maintained in an order, and maintained in a native format. Additionally, there is a need to view and edit ordered sections within a viewport and to consecutively print the ordered sections as an uninterrupted print job with better print quality and control and with consecutive page numbering.